<?

function select_arbol($padreId = 0, $nivel = 0, $marcar = null)
{
	$nivel++;
	$sql = 'select id, categoria_id, nombre from categorias where categoria_id = ('.$padreId.') order by nombre';
	$rs = mysql_query($sql);

	if (is_null($marcar))
	{
		while ($categoria = mysql_fetch_assoc($rs))
		{
			$nombre = str_pad($categoria['nombre'], strlen($categoria['nombre']) + ($nivel - 1), ' ', STR_PAD_LEFT);
			while (strpos($nombre, ' ') !== false)
			{
				$nombre = str_replace(' ', '&nbsp;&nbsp;&nbsp;', $nombre);
			}
			echo '<option value="'.$categoria['id'].'">'.$nombre.'</option>'."\n";
			select_arbol($categoria['id'], $nivel);
		}
	}
	else if (is_numeric($marcar))
	{
		while ($categoria = mysql_fetch_assoc($rs))
		{
			$nombre = str_pad($categoria['nombre'], strlen($categoria['nombre']) + ($nivel - 1), ' ', STR_PAD_LEFT);
			while (strpos($nombre, ' ') !== false)
			{
				$nombre = str_replace(' ', '&nbsp;&nbsp;&nbsp;', $nombre);
			}
?>
<option value="<? echo $categoria['id']; ?>"<? if ($marcar == $categoria['id']) { echo ' selected="selected"'; } ?>><? echo $nombre; ?></option>
<?
			select_arbol($categoria['id'], $nivel, $marcar);
		}
	}
	else if (is_array($marcar))
	{
		while ($categoria = mysql_fetch_assoc($rs))
		{
			$nombre = str_pad($categoria['nombre'], strlen($categoria['nombre']) + ($nivel - 1), ' ', STR_PAD_LEFT);
			while (strpos($nombre, ' ') !== false)
			{
				$nombre = str_replace(' ', '&nbsp;&nbsp;&nbsp;', $nombre);
			}
?>
<option value="<? echo $categoria['id']; ?>"<? if (in_array($categoria['id'], $marcar)) { echo ' selected="selected"'; } ?>><? echo $nombre; ?></option>
<?
			select_arbol($categoria['id'], $nivel, $marcar);
		}
	}
}

function select_sql($sql, $marcar = null)
{
	$rs = mysql_query($sql);
	if (!$rs)
	{
		echo '</select> <strong>Error en la consulta.</strong>';
	}
	else
	{
		if (is_null($marcar))
		{
			while ($reg = mysql_fetch_row($rs))
			{
				?>
<option value="<? echo $reg[0]; ?>"><? echo $reg[1]; ?></option>
				<?
			}
		}
		else
		{
			while ($reg = mysql_fetch_row($rs))
			{
				?>
<option value="<? echo $reg[0]; ?>"<? if ($reg[0] == $marcar) { echo ' selected'; } ?>><? echo $reg[1]; ?></option>
				<?
			}
		}
	}
}

function select_archivos($ruta, $marcar = null)
{
	if (!is_dir($ruta))
	{
		echo '</select> <strong>La ruta \''.$ruta.'\' no existe.</strong>';
	}
	else
	{
		if (!($gd = opendir($ruta)))
		{
			echo '</select> <strong>La ruta \''.$ruta.'\' no pudo abrirse.</strong>';
		}
		else
		{
			while (($archivo = readdir($gd)) !== false)
			{
				if ($archivo != '.' && $archivo != '..')
				{
					$archivos[] = $archivo;
				}
			}
			closedir($gd);

			if (!natcasesort($archivos))
			{
				echo '</select> <strong>La ruta \''.$ruta.'\' no tiene archivos.</strong>';
			}
			else
			{
				if (is_null($marcar))
				{
					foreach ($archivos as $archivo)
					{
						echo '<option value="'.$archivo.'">'.$archivo.'</option>';
					}
				}
				else
				{
					foreach ($archivos as $archivo)
					{
						if ($archivo == $marcar)
						{
							echo '<option value="'.$archivo.'" selected>'.$archivo.'</option>';
						}
						else
						{
							echo '<option value="'.$archivo.'">'.$archivo.'</option>';
						}
					}
				}
			}
		}
	}
}

?>